package cn.com.duiba.millionaire.center.biz.service;

import cn.com.duiba.millionaire.center.api.dto.MillionaireActivityDto;
import cn.com.duiba.millionaire.center.api.requestParam.MillionaireActivityRequestParam;

import java.util.List;

/**
 * Created by sty on 1/20/18.
 */
public interface MillionaireActivityService {
    /**
     *
     * getActivityByIds:(这里用一句话描述这个方法的作用). <br/>
     * 根据分会场id list 查询分会场信息
     * @param ids
     * @return
     * @since JDK 1.8
     */
    List<MillionaireActivityDto> getActivityByIds(List<Long> ids);

    /**
     * 检查分会场活动添加到主会场后台分会场使用限制,
     * 分会场是否被加入其他主会场
     *
     * @param ids
     * @return
     */
    String checkActivityAddMainMeeting(List<Long> ids,Integer actType);

    /**
     *
     * countMillionaireActivityList:(这里用一句话描述这个方法的作用). <br/>
     * 统计冲顶主会场条数
     * @param param
     * @return
     * @since JDK 1.8
     */
    Integer countMillionaireActivityList(MillionaireActivityRequestParam param);

    /**
     *
     * MillionaireActivityList:(这里用一句话描述这个方法的作用). <br/>
     * 统计冲顶主会场数据
     * @param param
     * @return
     * @since JDK 1.8
     */
    List<MillionaireActivityDto> getMillionaireActivityList(MillionaireActivityRequestParam param);

    /**
     *
     * findMillionaireActivityById:(这里用一句话描述这个方法的作用). <br/>
     * 查询 答题分会场数据
     *
     * @param id
     * @return
     * @since JDK 1.8
     */
    MillionaireActivityDto findMillionaireActivityById(Long id);

    /**
     *
     * openOrdelete:(这里用一句话描述这个方法的作用). <br/>
     * 根据id
     * @param id
     * @param type  1:开启，2：关闭,3：删除
     * @return
     * @since JDK 1.8
     */
    Boolean openOrDelete(Long id, Integer type);

    /**
     *
     * saveOrUPdateMillionaireActivity:(这里用一句话描述这个方法的作用). <br/>
     * 根据id 为 null 新增  id 不为null 是 更新
     * @param dto
     * @return
     * @since JDK 1.8
     */
    Boolean saveOrUpdateMillionaireActivity(MillionaireActivityDto dto);

    /**
     * 修改活动状态为使用过(开过奖)
     * @param id
     * @return
     */
    int changeAlreadyUsed(Long id);

    /**
     * 根据活动类型查询可用的活动
     *
     * @param actType
     * @return
     */
    List<MillionaireActivityDto> findAvailableActivity(Integer actType);
}
